/*
 * $Id: $
 */
package org.rcgwt.client.ui.grid.internal.model;

import org.rcgwt.client.ui.grid.internal.IRenderedIndexRecorder;
import org.rcgwt.client.ui.grid.model.IGridWidget;

import com.google.gwt.dom.client.Element;

/**
 * 
 * @author Olivier Oeuillot (latest modification by $Author: $)
 * @version $Revision: $ $Date: $
 */
public interface IGridModel extends IElementModel {

	IGridWidget getGridWidget();

	// IGroupModel defineGroupModel(int modelIndex, IGroup group);

	IGroupModel[] listGroupModels();

	// IColumnModel defineColumnModel(int modelIndex, IColumn column);

	// IColumnModel getColumnModel(IColumn column);

	IColumnModel[] listColumnModels();

	IViewModel[] listViewModels();

	// IRowRenderedIndexRecorder getRowRenderedIndexRecorder();

	IRowModel searchRowModel(int rowModelIndex);

	void registerRowModel(IRowModel rowModel);

	IRenderedIndexRecorder<IRowModel, IGroupModel> getRowRenderedIndexRecorder();

	IElementModel findElementModel(Element element);

	IViewModel findViewModel(Element element);
}
